import { addGlobalUncaughtErrorHandler, registerMicroApps, start } from "qiankun";

// 微应用信息
import apps from './app'

/**
 * 注册微应用
 * 第一个参数： 微应用的注册信息，
 * 第二个参数： 全局生命周期钩子 
 */
registerMicroApps(apps, {
  // qiankun 生命周期钩子， 微应用加载前
  beforeLoad: (app) => {
    // 加载微应用前，加载进度条
    console.log('before load ==== ', app.name)
    return Promise.resolve()
  },
  afterMount: (app) => {
    console.log('after mount====', app.name)
    return Promise.resolve()
  }
})

/**
 * 添加全局的未捕获异常处理器
 */
addGlobalUncaughtErrorHandler((event) => {
  console.error(event)
  const { message: msg } = event;
  if(msg && msg.includes('died in status LOADING_SOURCE_CODE')) {
    console.error('微应用加载失败')
  }
})

// 导出 qiankun 的start函数，启动函数
export default start